--
-- *****************************************************************
-- CISCO L3 Switch QoS Based Switching MIB
--
-- Feb, 1998 Abhijit Patra
--
-- Copyright (c) 1996-1998 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-QOS-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, 
        OBJECT-TYPE            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, 
        OBJECT-GROUP           FROM SNMPv2-CONF
        TEXTUAL-CONVENTION,
        TruthValue, 
        RowStatus              FROM SNMPv2-TC
--PSIM(BEGIN) 
        ciscoExperiment        FROM CISCO-SMI
--PSIM(END) 
        InterfaceIndexOrZero   FROM CISCO-TC;

ciscoQoSMIB   MODULE-IDENTITY
--PSIM(Modif)      LAST-UPDATED "9826020000Z"
     LAST-UPDATED       "9802260000Z"
     ORGANIZATION       "Cisco Systems, Inc."
     CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-tbd@cisco.com" 
     DESCRIPTION
       "This MIB module is cisco version for Quality of Service (QoS) based 
        Switching on CAT 85xx series of L3 Switch/Router Platform(s)."
--PSIM(Modif)      REVISION        "9826020000Z"
     REVISION        "9802260000Z"
     DESCRIPTION
            "Initial Version" 
--PSIM(Modif)      REVISION        "9826020000Z"
     REVISION        "9802260000Z"
     DESCRIPTION
            "Initial Version For QoS based Switching MIB"
     ::= { ciscoExperiment 100 } -- to be assigned by cana@cisco.com


ciscoQoSMIBObjects OBJECT IDENTIFIER ::= { ciscoQoSMIB 1 }

-- Object(s) to Control QoS-based Switching

ciscoQoSControl OBJECT IDENTIFIER ::= { ciscoQoSMIBObjects 1 }

ciscoQoSEnable OBJECT-TYPE 
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "Enables or disables the QoS-based L3 Switching of IP traffic"
    DEFVAL { true }
    ::=  { ciscoQoSControl 1}
    
-- Table for Precedence to WRR Scheduling Weight Mapping. 

ciscoQoSMap OBJECT IDENTIFIER ::= { ciscoQoSMIBObjects 2 }

-- Textual Convention(s)

CiscoQoSPrecedence ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS current
    DESCRIPTION
    "A value in the range 0..3 indicating the precedence. '0' is the 
    least preferred precedence and '3' is most preffered precedence."
    SYNTAX INTEGER (0..3)

CiscoWrrSchedWeight ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS current
    DESCRIPTION
    "A value in the range 1..15 indicating the Weighted Round Robin (WRR) 
     scheduling weight."
    SYNTAX INTEGER (1..15)

ciscoQoSMapTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CiscoQoSMapEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "This table maintains the Precedence to WRR scheduling Weight Mapping."
    ::= { ciscoQoSMap 1 }

ciscoQoSMapEntry OBJECT-TYPE 
    SYNTAX CiscoQoSMapEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "An entry in the L3 Switching Precedence to WRR Mapping Table. Each entry
    is indexed by the source, destination interface and precedence. When 
    a row is indexed as 0.0.<precedence> it gives the system level mapping 
    for the given precedence traffic. When a row is indexed by s.d.<precedence> 
    it provides the wrr weight for the given precedence traffic from interface 
    s to interface d. When a row is indexed by 0.d.<precedence>, it provides 
    the wrr-weight for the given precedence traffic to destination interface d. 
    Also when a row is indexed by s.0.<precedence>, it provides the wrr weight
    for the given precedence traffic from source interface s."
    INDEX { ciscoQoSMapSrcIf, ciscoQoSMapDstIf, ciscoQoSMapPrecedence }
    ::= { ciscoQoSMapTable 1 }

CiscoQoSMapEntry ::=
    SEQUENCE {
       ciscoQoSMapSrcIf InterfaceIndexOrZero,
       ciscoQoSMapDstIf InterfaceIndexOrZero,
       ciscoQoSMapPrecedence CiscoQoSPrecedence,
       ciscoQoSMapWrrWeight CiscoWrrSchedWeight,
       ciscoQoSMapRowStatus RowStatus        
    }

ciscoQoSMapSrcIf OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "This specifies the source interface"
    ::= { ciscoQoSMapEntry 1 }

ciscoQoSMapDstIf OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "This specifies the destination interface"
    ::= { ciscoQoSMapEntry 2 }
  
ciscoQoSMapPrecedence OBJECT-TYPE 
    SYNTAX CiscoQoSPrecedence
    MAX-ACCESS not-accessible 
    STATUS current
    DESCRIPTION
    "This specifies the precedence derived from IP precedence field"
    ::= { ciscoQoSMapEntry 3 }

ciscoQoSMapWrrWeight OBJECT-TYPE 
    SYNTAX CiscoWrrSchedWeight
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "This specifies the WRR scheduling weight for the precedence specified.
    The  default values of the WRR weight is 1,2,4,8 respectively for the
    precedence values 0,1,2,3"
    ::= { ciscoQoSMapEntry 4 }

ciscoQoSMapRowStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
    "This object is used to create a new row or delete an existing row
    in this table."
    DEFVAL  { active }
    ::= { ciscoQoSMapEntry 5 }

-- conformance information

ciscoQoSMIBConformance
              OBJECT IDENTIFIER ::= { ciscoQoSMIB 3 }
ciscoQoSMIBCompliances
              OBJECT IDENTIFIER ::= { ciscoQoSMIBConformance 1 }
ciscoQoSMIBGroups
              OBJECT IDENTIFIER ::= { ciscoQoSMIBConformance 2 }

-- compliance statements

ciscoQoSMIBCompliance  MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
        "The compliance statement for the Cisco L3 Switch/Router
        QoS Based Switching group."
        MODULE  -- this module
        MANDATORY-GROUPS { ciscoQoSMIBGroup }
        ::= { ciscoQoSMIBCompliances 1 }

-- units of conformance

ciscoQoSMIBGroup   OBJECT-GROUP
    OBJECTS { 
        ciscoQoSEnable,
        ciscoQoSMapSrcIf,
        ciscoQoSMapDstIf,
        ciscoQoSMapPrecedence,
        ciscoQoSMapWrrWeight,
        ciscoQoSMapRowStatus         
    }
    STATUS    current
    DESCRIPTION
    "The Object Group for QoS based Switching"
    ::= { ciscoQoSMIBGroups 1 }
 
END